#ifndef __LONGINT_H__
#define	__LONGINT_H__

#define CANT_INT 8

typedef unsigned int t_longInt[CANT_INT+1];

typedef struct t_longInt_vector{
    int dim;
    int maxDim;
    t_longInt * vec;
}t_longInt_vector;

/******************************************************************************/
/**                              Prototypes                                  **/
/******************************************************************************/

void complexAnd(t_longInt a, t_longInt b);
int getNextOne(t_longInt a,int from);

void createVec(t_longInt_vector * li, int dim);
void turnOn(t_longInt li, int num);
void longIntCpy(t_longInt dest, t_longInt source);
void longIntMerge(t_longInt dest, t_longInt source);
int longIntCmp(t_longInt a, t_longInt b);
int isTrap(t_longInt l);
void setTrap(t_longInt l);
void clearTrap(t_longInt l);
void printState(t_longInt li);
void printStates2(t_longInt_vector * l);
void printStatesDebug(t_longInt_vector * l);
void reset(t_longInt l);
void longIntAnd(t_longInt dest, t_longInt source);
void longIntOr(t_longInt dest, t_longInt source);
int isZero(t_longInt l);
int getNextOne(t_longInt a,int from);

#endif
